Skip to content

Conversation

Fe-r-oz
Copy link
Contributor

@Fe-r-oz Fe-r-oz commented Jul 28, 2025

This PR creates the ECC ZOO wiki for Double Homological Product Code construction of https://arxiv.org/pdf/1805.09271.

New Codes:

  • Double Homological Product Code
  • By: Earl T. Campbell

Checklist:

I remembered to:

  • Include relevant citations I could think of (with \cite{...})

  • Create links to the other referenced codes (with
    \hyperref[code:...]{...})

  • Update the relevant meta changelog fields with my user_id (see
    users/users_db.yml; add yourself in the PR if you aren't there already)

@Fe-r-oz Fe-r-oz force-pushed the fa/double-homological-product branch 4 times, most recently from dd84103 to c557f4b Compare July 28, 2025 19:09
@Fe-r-oz Fe-r-oz force-pushed the fa/double-homological-product branch from c557f4b to 94d298f Compare July 28, 2025 19:10
@Fe-r-oz
Copy link
Contributor Author

Fe-r-oz commented Jul 28, 2025

Hopefully, the documentation is satisfactory.

Future work

The double HP code presented in Table 1 of arXiv:1805.09271 is a variant of multi-sector homological product codes. Another variant appears in Table III of arXiv:2407.18490, where the classical seed code is specifically quasi-cyclic -- that code construction is formulated via a tensor product of chain complexes, followed by taking the total complex of the resulting complex. A natural generalization of this approach leads to D-dimensional multi-sector HP codes, for which I would be happy to draft a dedicated wiki page after completing this one.

Given that existing literature categorizes HP codes into multi-sector and single-sector variants, I’m wondering whether the ECC Zoo wiki might formally adopt this division/convention? Or refer the single/multi-sector characterization in the documentation of HP code? It appears that the square HP code is single-sector variant because it refers to arxiv:1311.0885 which introduced to the single-sector codes.

For now, we can just consider the relation: parent id:homological_product

CC: @valbert4

@Fe-r-oz Fe-r-oz marked this pull request as ready for review July 28, 2025 19:31
@Fe-r-oz
Copy link
Contributor Author

Fe-r-oz commented Jul 29, 2025

Maybe we can include this detail:

This specific variant of multi-sector HP code is related to the quantum LDPC codes via hypergraph product introduced by Tillich and Zemor in 0903.0566.

Reference

Furthermore, there is some freedom in the (chain complex) notation and we use a convention such that the homological (multi-sector) product in this section is manifestly equivalent to the hypergraph product of Tillich and Zemor ~ Page 12

@valbert4
Copy link
Member

Hi! THanks for bringing this to attention. We should indeed have some multi-sector entry. Should it be a multi-sector hypergraph entry = a hypergraph product of two or more classical codes (1-chain complexes)? What do you think of also having a multi-sector homological product = tensor product of two quantum codes (2-chain complexes) entry? Or should these be merged together?

@Fe-r-oz
Copy link
Contributor Author

Fe-r-oz commented Oct 16, 2025

Should it be a multi-sector hypergraph entry = a hypergraph product of two or more classical codes (1-chain complexes)? What do you think of also having a multi-sector homological product = tensor product of two quantum codes (2-chain complexes) entry? Or should these be merged together?

There is some freedom in the notation as follows:

Furthermore, there are a few different notions of the homological product. For instance, Bravyi and Hastings use a simplified variant that they call the single sector homological product, whereas we will use a more standard textbook variant that Bravyi and Hastings would call a multi sector homological product [20]. Furthermore, there is some freedom in the notation and we use a convention such that the homological product in this section is manifestly equivalent to the hypergraph product of Tillich and Zemor.

This means that in some papers, the

multi-sector hypergraph entry = a hypergraph product of two or more classical codes (1-chain complexes)

is viewed as multi-sector homological product as per the above reference.

We should consider adding a separate multi-sector homological product entry which corresponds to tensor product of two classical codes (1-chain complexes). Currently, the [Homological product code entry appears to imply primarily on the single-sector formulation. It might be helpful to clarify that the existing content discusses the single-sector case, while introducing the multi-sector entry as generalization. Since the homological product naturally generalizes the hypergraph product construction, creating a dedicated multi-sector homological product entry would provide better coverage of this more general framework.

I am happy to set them up and request your review and there I will be more precise about conventions this my general message here.

P.S.: Pressed enter the message while typing the message so edited it.

@valbert4
Copy link
Member

Thanks. I left some comments on your current submissions.

I'll create multisector versions of both, and you can then edit them as you see fit.

We already have https://errorcorrectionzoo.org/c/square_homological_product btw.

@Fe-r-oz
Copy link
Contributor Author

Fe-r-oz commented Oct 16, 2025

We already have https://errorcorrectionzoo.org/c/square_homological_product btw.

Thank you for your feedback. This entry is great!

@valbert4
Copy link
Member

valbert4 commented Oct 16, 2025

Added multisector_hypergraph: bb7a7a5

If you know, please comment or edit this code's relation to xyz_product, higher_dimensional_surface, and iterated_ramanujan. In particular, are any of these its children? I take it this code is CSS, but then xyz_product cannot be its child.

@valbert4
Copy link
Member

I checked xyz_product and iterated_ramanujan. Relation to higher_dimensional_surface and _toric still open.

@Fe-r-oz
Copy link
Contributor Author

Fe-r-oz commented Oct 16, 2025

Relation to higher_dimensional_surface and _toric still open.

The higher dimensional surface and toric codes (3D/4D) versions are children of multisector_hypergraph entry. Reference is https://arxiv.org/pdf/2408.08865 where they build the 3D/4D surface codes using multi-sector hypergraph product.

@valbert4
Copy link
Member

Thanks. It is indeed basically as you, but I was side-tracked by an error in higher_dimensional_surface. Now fixed: 45b496f

Because all the surface codes are only related when on a hypercubic lattice, multisector_hypergraph doesn't actually have a lot of children. One more child would be Earl's double_homological, but I'm thinking of upgrading this directly to multisector_homological instead of having a separate entry for the latter.

@valbert4 valbert4 merged commit 906e037 into errorcorrectionzoo:main Oct 21, 2025
1 check failed
@valbert4
Copy link
Member

  • I added this and upgraded multisector_hypergraph to homological, consolidating some cousins. Only thing i was confused about was "d_{ss} = \infty"?

  • I acknowledged you both in this and the multisector entries.

  • Would you be willing to do an augmented surface code entry formatted along the lines of this one?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants